package org.itboys.core.common;

/**
 * 作者：zzq
 * 时间：2018/8/24
 * 描述：自定义异常枚举
 *              code和value 保持唯一
 *             抛异常的格式   throw new ErrorException(ExceptionEnum.COMMENEXCPTION.getValue());
 */
public enum ExceptionEnum {
    EXCPTION("系统异常",-1),
    AUTHEXCPTION("没有权限",3),
    TOKENEXCPTION("签名错误",1),
    COMMENEXCPTION("常见错误",2),
    ADDRESS_DEFAULT_EXCEPTION("默认地址不能删除",4),
    JNBY_CREATE_USER_EXCEPTION("JNBY创建用户失败",5),
    SCENE_STATUS_EXCEPTION("场景状态错误",6),
    SCENE_PRICE_EXCEPTION("场景价格大于商品总价",7),
    SCENE_GOODS_EXCEPTION("请选择商品",8),
    ADD_CART_EXCEPTION("加入购物车失败",9),
    JNBY_CREATE_ORDER_EXCEPTION("JNBY创建订单失败",10),
    ORDER_STATUS_EXCEPTION("订单状态错误",11),
    CART_NUM_EXCEPTION("购物车数量错误",12),
    ORDER_TYPE_EXCEPTION("订单类型错误",13),
    MEMBER_NO_LONGIN_EXCEPTION("用户未登陆",14),
    ORDER_OWNER_EXCEPTION("自己的订单",15),
    VALICODE_MOBILE_EXCEPTION("请填入正确手机号",16),
    VALICODE_DATA_EXCEPTION("数据错误，请重新获取验证码",17),
    VALICODE_EXCEPTION("验证码错误",18),
    GOODS_PRICE_EXCEPTION("折扣价大于原价",19),
    ORDER_BACK_EXCEPTION("订单退款失败",20),
    GOODS_STORE_EXCEPTION("库存不足",21),
    ORDER_RETURN_EXCEPTION("订单退货失败",22),


    ;
    private int code;
    private String value;

    public static String exceptionStr(int code) {
        for (ExceptionEnum c : ExceptionEnum.values()) {
            if (c.getCode() == code) {
                return c.getValue();
            }
        }
        return null;
    }

    public static ExceptionEnum getExceptionEnum(String value) {
        for (ExceptionEnum c : ExceptionEnum.values()) {
            if (c.getValue() == value) {
                return c;
            }
        }
        return null;
    }

    ExceptionEnum(String value, int code) {
        this.value = value;
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}
